Mocha এবং Chai হলো দুটি জনপ্রিয় টেস্টিং লাইব্রেরি যা Node.js অ্যাপ্লিকেশনে unit testing করার জন্য ব্যবহৃত হয়। Mocha একটি টেস্ট ফ্রেমওয়ার্ক, যা টেস্ট রান করতে ব্যবহৃত হয় এবং Chai একটি assertion লাইব্রেরি, যা পরীক্ষার ফলাফল যাচাই করার জন্য ব্যবহৃত হয়।
এখানে Mocha এবং Chai ব্যবহার করে একটি unit test সেটআপ এবং টেস্ট লেখার প্রক্রিয়া দেখানো হলো।
Step 1: Mocha এবং Chai ইনস্টল করা
প্রথমে, Mocha এবং Chai আপনার প্রোজেক্টে ইনস্টল করতে হবে। এটি করার জন্য, নিচের কমান্ড ব্যবহার করুন:
npm init -y # package.json তৈরি করবে যদি না থাকে
npm install mocha chai --save-dev
এটি Mocha এবং Chai প্যাকেজ ইনস্টল করবে এবং devDependencies তে যুক্ত করবে।
Step 2: Test স্ক্রিপ্ট তৈরি করা
আপনার টেস্টগুলি একটি নির্দিষ্ট ফোল্ডারে রাখা হয়। সাধারণত test নামক একটি ফোল্ডার তৈরি করা হয়, যেখানে আপনার সমস্ত টেস্ট ফাইল রাখা হয়। উদাহরণস্বরূপ:
mkdir test
এখন আপনি test ফোল্ডারে একটি ফাইল তৈরি করতে পারেন, যেমন app.test.js।
Step 3: Mocha এবং Chai ব্যবহার করে Unit Test লেখা
Chai assertion লাইব্রেরি ব্যবহার করে টেস্টে শর্তাবলী যোগ করা হয় এবং Mocha ফ্রেমওয়ার্ক ব্যবহার করে টেস্ট রান করা হয়। নিচে একটি উদাহরণ দেওয়া হলো, যেখানে একটি সিম্পল ফাংশন টেস্ট করা হয়েছে।
Function to Test:
ধরি আমাদের একটি ফাংশন আছে যা দুটি সংখ্যার যোগফল করে:
// sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
Test Case:
এখন আমরা sum ফাংশনের জন্য একটি টেস্ট লিখব।
// test/app.test.js
const chai = require('chai');
const sum = require('../sum'); // আমরা sum.js ফাংশনটি import করেছি
const expect = chai.expect; // Chai-এর expect assertion স্টাইল
describe('Sum Function', function() {
it('should return the sum of two numbers', function() {
const result = sum(2, 3); // ফাংশন কল
expect(result).to.equal(5); // চেক করবে যে ফলাফলটি ৫ কি না
});
it('should return a negative sum when adding a negative number', function() {
const result = sum(2, -3);
expect(result).to.equal(-1);
});
it('should return zero when adding zero', function() {
const result = sum(0, 0);
expect(result).to.equal(0);
});
});
এখানে:
- describe ব্লকের মধ্যে আমরা টেস্টের subject বা টেস্টের উদ্দেশ্য ব্যাখ্যা করেছি (যেমন এখানে
Sum Function)। - it ব্লকের মধ্যে নির্দিষ্ট test case এর বর্ণনা রয়েছে। প্রতিটি it ব্লক একটি আলাদা টেস্ট প্রতিনিধিত্ব করে।
- expect() Chai এর assertion ফাংশন, যা পরীক্ষিত মানের সাথে তুলনা করতে ব্যবহৃত হয়।
Step 4: Mocha চালানো
আপনি npm scripts এর মাধ্যমে Mocha টেস্ট রান করতে পারেন। package.json ফাইলে একটি স্ক্রিপ্ট যুক্ত করুন:
{
"scripts": {
"test": "mocha"
}
}
এখন, আপনি npm test চালিয়ে আপনার টেস্ট রান করতে পারবেন:
npm test
এটি Mocha চালাবে এবং আপনার test ফোল্ডারের সব টেস্ট ফাইল রান করবে।
Output:
Sum Function
✓ should return the sum of two numbers
✓ should return a negative sum when adding a negative number
✓ should return zero when adding zero
3 passing (10ms)
Step 5: Assertion Styles
Chai তে তিনটি মূল assertion স্টাইল রয়েছে:
- Expect: যা আমরা উপরে দেখেছি, এটা একটি চেইনেবল assertion স্টাইল।
- Should: এটি
shouldপদ্ধতিতে লেখা হয়, এবং পপুলার স্টাইল। - Assert: এটি কমপ্যাক্ট পদ্ধতিতে লেখা হয়।
Should Example:
const chai = require('chai');
const sum = require('../sum');
chai.should();
describe('Sum Function', function() {
it('should return the sum of two numbers', function() {
const result = sum(2, 3);
result.should.equal(5);
});
});
Assert Example:
const chai = require('chai');
const sum = require('../sum');
const assert = chai.assert;
describe('Sum Function', function() {
it('should return the sum of two numbers', function() {
const result = sum(2, 3);
assert.equal(result, 5);
});
});
Step 6: টেস্ট কাভারেজ
Mocha তে টেস্ট কাভারেজ দেখতে চাইলে, আপনি nyc (Istanbul) ব্যবহার করতে পারেন। এটি টেস্ট রান করার পর কতটুকু কোড কাভার হয়েছে তা দেখাবে।
nyc ইনস্টল করুন:
npm install --save-dev nycpackage.json তে স্ক্রিপ্ট আপডেট করুন:
{ "scripts": { "test": "nyc mocha" } }টেস্ট রান করুন:
npm test
এটি টেস্ট কাভারেজ রিপোর্ট দেখাবে এবং কতটুকু কোড টেস্ট করা হয়েছে তা পরিসংখ্যান হিসেবে দেখাবে।
সারাংশ
- Mocha একটি শক্তিশালী টেস্ট ফ্রেমওয়ার্ক যা Node.js অ্যাপ্লিকেশনে unit testing পরিচালনা করতে সাহায্য করে।
- Chai একটি assertion লাইব্রেরি যা বিভিন্ন assertion স্টাইল (Expect, Should, Assert) সমর্থন করে, যার মাধ্যমে আপনি পরীক্ষিত মানের সাথে তুলনা করতে পারেন।
- Mocha এবং Chai ব্যবহার করে আপনি সহজেই unit test লিখতে পারেন এবং অ্যাপ্লিকেশনটির সঠিকতা নিশ্চিত করতে পারেন।
- আপনি nyc ব্যবহার করে টেস্ট কাভারেজও দেখতে পারেন।
এভাবে Mocha এবং Chai দিয়ে আপনি আপনার Node.js বা Meteor অ্যাপ্লিকেশনগুলোর জন্য কার্যকরী unit testing করতে পারবেন।
Read more